収集(「ショッピングカート」とも呼ばれます)は、多くのウェブサイトで使われている機能であり、ユーザーが特定のセットのアイテムを追跡できるようにします。 これは、画像データベースの場合など、ユーザーが多数の異なる検索を行って画像のセットを収集する必要がある場合に特に便利です。
PortWebには収集のサポートが標準で備わっています。 PortWebでは、アイテムを追跡したいすべてのユーザーに対してショッピングカートが作成されます(ページがショッピングカートの使用をサポートしていることを前提とします)。 PortWebは、1人のユーザーのショッピングカートを複数セッションにわたって維持したり、ユーザーがアクセスする各カタログに対して別々のカートを維持したりできます。
収集レコードセットは、「PortWeb.wdb」という名前の専用データベースファイルに格納されます。 管理者は収集したデータをデータベースに保持する期間を設定できます。 さまざまなコマンドについては後述します。 収集要求はcookieを受け入れるようにブラウザを設定したユーザーの場合しか正しく機能しないことに注意してください。
注意: 収集データはカタログごとに個別に格納されます。 つまり、あるカタログのアイテムを別のカタログのアイテムと同じショッピングカートに追加することはできません。
収集の使用
PortWebで収集を使用する場合は通常、次のような手順を踏みます。
ユーザーはqueryコマンドを使って検索を送信します。
query要求によって生成されたウェブページが返されます。
「ショッピングカートに追加」というボタンがページに表示されます。
このボタンをクリックすると、1つまたは複数のレコードを追加する収集要求が生成されます。 現在のカタログに現在のユーザーの収集データが存在しない場合(クエリーで受信されたcookieに基づく)、新しい収集レコードが作成されます。
Addコマンドの結果として現在の収集を示すページが新しく生成され、cookieがユーザーのシステムに設定されます。
このショッピングカートページでは、ユーザーはカート内のアイテムを削除することもできます。
PortWebが実行するサイトに収集機能を追加するには、収集マクロを使うか、収集コマンドを直接使います。 通常、PortWebでは必要なHTMLの大部分が自動的に生成されるため、マクロの方が簡単ですが、 収集コマンドの柔軟性が必要となる場合もあります。
収集用テンプレート
収集用テンプレートは、その他すべての応答用テンプレートと実質的には変わりません。 主な相違点は、収集用テンプレートが特定のクエリーの結果ではなくユーザーの収集セットの結果を表示する点です。 多くの場合、同じテンプレートをクエリーと収集の両方に使用することができます。 もちろん、ユーザーが収集データを編集できるようにするには、addコマンドとremoveコマンドを使用する収集用テンプレートを作成する必要があります。
収集特有のマクロについて詳しくは、「PortWebテンプレート」を参照してください。
収集のチュートリアル
収集がどのように機能するかを調べるには、チュートリアルを読んで、収集の機能を試してください。
addコマンド
addコマンドは、1つまたは複数のレコードをユーザーの収集セットに追加します。 特定のカタログに関するユーザーの収集セットがない場合、新しい収集セットが作成され、cookieがユーザーに返されます。 指定するパラメータは以下のとおりです。
addコマンド |
|
パラメータ |
説明 |
catalog |
使用するカタログの別名を指定します。 エイリアスは、ディスク上のカタログまたはPortfolio Serverで公開しているカタログに、設定ファイルを使って割り当てられます。 |
rid |
カタログ内のレコードIDを指定します。 カタログ内では、各レコードに別々のレコードIDが割り当てられています。 レコードIDの指定のしかたは、単一のレコードやレコードのリスト(例えば ...&rid=70&rid=75&rid=85&... 無効なRIDはすべて無視されます。 |
template(オプション) |
使用されるテンプレートのエイリアスを指定します。 このパラメータが渡されないと、デフォルトのHTMLの書き出しテンプレート(4×4のグリッドによる基本的なサムネール表示レイアウト)が使われます。 |
sorton(オプション) |
見つかったセットを並べ替える際の基準とする、単一の値を持つインデックスフィールドを指定します。 ここでフィールドを指定しない場合、レコードセットの順番は検索によって返される順番になります。 |
ascending(オプション) |
レコードセットを並べ替える順番を指定します。 値0は昇順を示し、値1は降順を示します。 sortonパラメータが指定されていない場合、このパラメータは無視されます。 sortonパラメータは指定されていても、このパラメータが指定されていない場合、デフォルトの並べ替え順は0(昇順)です。 |
offset(オプション) |
すでに表示されている収集したレコードの数を示す正の整数。 このパラメータが指定されていないと、収集した最初のレコードから表示が開始されます。 |
removeコマンド
removeコマンドは、1つまたは複数のレコードをユーザーの収集セットから削除します。 cookieが存在しない場合、ユーザーのcookieのIDが収集データベースのレコードと一致しない場合、またはcookieのIDが要求で指定されたカタログと一致しない場合、「クエリーに一致するレコードは見つかりません」というエラーページが返されます。
指定するパラメータは以下のとおりです。
removeコマンド |
|
パラメータ |
説明 |
catalog |
使用するカタログの別名を指定します。 エイリアスは、ディスク上のカタログまたはPortfolio Serverで公開しているカタログに、設定ファイルを使って割り当てられます。 |
rid |
カタログ内のレコードIDを指定します。 カタログ内では、各レコードに別々のレコードIDが割り当てられています。 レコードIDの指定のしかたは、単一のレコードやレコードのリスト(例えば ...&rid=70&rid=75&rid=85&... 無効なRIDはすべて無視されます。 |
template(オプション) |
使用されるテンプレートのエイリアスを指定します。 このパラメータが渡されないと、デフォルトのHTMLの書き出しテンプレート(4×4のグリッドによる基本的なサムネール表示レイアウト)が使われます。 |
sorton(オプション) |
見つかったセットを並べ替える際の基準とする、単一の値を持つインデックスフィールドを指定します。 ここでフィールドを指定しない場合、レコードセットの順番は検索によって返される順番になります。 |
ascending(オプション) |
レコードセットを並べ替える順番を指定します。 値0は昇順を示し、値1は降順を示します。 sortonパラメータが指定されていない場合、このパラメータは無視されます。 sortonパラメータは指定されていても、このパラメータが指定されていない場合、デフォルトの並べ替え順は0(昇順)です。 |
offset(オプション) |
すでに表示されている収集したレコードの数を示す正の整数。 このパラメータが指定されていないと、収集した最初のレコードから表示が開始されます。 |
showコマンド
showコマンドはユーザーの収集セットのレコードを表示します。
パラメータは以下のとおりです。
showコマンド |
|
パラメータ |
説明 |
catalog |
使用するカタログの別名を指定します。 エイリアスは、ディスク上のカタログまたはPortfolio Serverで公開しているカタログに、設定ファイルを使って割り当てられます。 |
rid |
カタログ内のレコードIDを指定します。 カタログ内では、各レコードに別々のレコードIDが割り当てられています。 レコードIDの指定のしかたは、単一のレコードやレコードのリスト(例えば ...&rid=70&rid=75&rid=85&... 無効なRIDはすべて無視されます。 |
template(オプション) |
使用されるテンプレートのエイリアスを指定します。 このパラメータが渡されないと、デフォルトのHTMLの書き出しテンプレート(4×4のグリッドによる基本的なサムネール表示レイアウト)が使われます。 |
sorton(オプション) |
見つかったセットを並べ替える際の基準とする、単一の値を持つインデックスフィールドを指定します。 ここでフィールドを指定しない場合、レコードセットの順番は検索によって返される順番になります。 |
ascending(オプション) |
レコードセットを並べ替える順番を指定します。 値0は昇順を示し、値1は降順を示します。 sortonパラメータが指定されていない場合、このパラメータは無視されます。 sortonパラメータは指定されていても、このパラメータが指定されていない場合、デフォルトの並べ替え順は0(昇順)です。 |
offset(オプション) |
すでに表示されている収集したレコードの数を示す正の整数。 このパラメータが指定されていないと、収集した最初のレコードから表示が開始されます。 |
収集要求(add、show、remove)が成功するたびに、収集のID番号を含むcookieがウェブサーバーからクライアントのブラウザに送信されます。 cookieは受け入れられると、ユーザーのマシンに格納され、以後の要求のたびにPortWebに返信されます。
ユーザーは個々あるいは、すべてのcookieを拒否するようにブラウザを設定することもできます。 cookieが拒否されると、すべてのadd要求によって、単一のアイテムを持つ新しい収集がPortWebの収集データベースに作成されます。 この場合、すべての収集要求(add、show、remove)の結果は、あたかも要求が空のカートに適用されたかのように機能します。
PortWebによって設定されるcookieには有効期限があり、この日付はプラグインの収集期限の設定と一致します。